package cn.maihe.elg.operation.model.bo;

import cn.maihe.elg.operation.centers.epoint.dto.handler.FileInfo;
import cn.maihe.elg.operation.centers.hymake.dto.handler.FilePushReqDTO;
import cn.maihe.elg.operation.model.enums.CenterNoEnum;
import cn.maihe.elg.operation.model.enums.GuaranteeCategory;
import cn.maihe.elg.operation.model.enums.GuaranteeType;
import cn.maihe.elg.operation.model.enums.InstitutionOrgCodeEnum;
import cn.maihe.elg.operation.repository.entity.AcceptOrderInfoDO;
import cn.maihe.elg.operation.repository.entity.BidCustomerDO;
import cn.maihe.elg.operation.repository.entity.GuaranteeAttachmentInfoDO;
import cn.maihe.elg.operation.repository.entity.InvoiceInfoDO;
import cn.maihe.elg.operation.repository.entity.ProjectInfoDO;
import cn.maihe.elg.operation.repository.entity.UserDO;
import lombok.Builder;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @Description
 * @Author WJH
 * @Date 2021/04/25
 */
@Data
@Builder
public class AcceptOrderBO {

    /**
     * 中心ID
     */
    @NotNull(message = "centerId不能为空")
    private Long centerId;
    /**
     * 机构ID
     */
    @NotNull(message = "orgId不能为空")
    private Long orgId;

    @NotNull(message = "招标项目信息不能为空")
    @Valid
    private ProjectInfoDO projectInfo;

    @NotNull(message = "投标客户不能为空")
    @Valid
    private BidCustomerDO bidCustomer;

    @NotNull(message="投标人信息不能为空")
    @Valid
    private UserDO userDO;

    @NotNull(message = "受理订单信息不能为空")
    @Valid
    private AcceptOrderInfoDO acceptOrderInfo;

    private InvoiceInfoDO invoiceInfoDO;

    /**
     * 保函附件信息
     */
    private List<GuaranteeAttachmentInfoDO> attachmentInfoDOList;

    /**
     * 保函类型
     */
    @NotNull(message = "保函类型不能为空")
    private GuaranteeType guaranteeType;

    /**
     * 保函类别
     */
    @NotNull(message = "保函类别不能为空")
    private GuaranteeCategory guaranteeCategory;

    /**
     * 是否内部系统出函（非调用外部接口）
     */
    private Boolean isInnerApply;
//    /**
//     * 保函出机构编码
//     */
//    private InstitutionCode institutionCode;
    /**
     * 保函出机构编码
     */
    private InstitutionOrgCodeEnum institutionOrgCodeEnum;

    /**
     * 交易中心编号枚举
     */
    private CenterNoEnum centerNo;

//    /**
//     * 交易中心供应商枚举
//     */
//    private CenterProviderEnum centerProvider;

    /**
     * 保函申请资料文件
     */
    List<FilePushReqDTO.FileInfo> fileInfos;

    /**
     * 保函申请资料文件 新点
     */
    List<FileInfo> fileInfoList;

    /**
     * 福州保函申请资料文件
     */
    List<cn.maihe.elg.operation.centers.fuzhou.dto.handler.FilePushReqDTO.FileInfo> fzFileInfos;

}
